package tratamientoDatos;

import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;

import org.osmdroid.util.GeoPoint;

import android.os.Parcel;
import android.os.Parcelable;

//Clase que se utilizar para generar el camino que se recorre en la ruta
public class Ruta implements Parcelable {

	private LinkedHashMap<Long, GeoPoint> camino;

	public static final Parcelable.Creator<Ruta> CREATOR = new Parcelable.Creator<Ruta>() {
		public Ruta createFromParcel(Parcel in) {
			return new Ruta(in);
		}

		public Ruta[] newArray(int size) {
			return new Ruta[size];
		}
	};

	private Ruta(Parcel in) {
		int hashSize = in.readInt();
		camino = new LinkedHashMap<Long, GeoPoint>();
		for (int i = 0; i < hashSize; i++)
			camino.put(in.readLong(),
					(GeoPoint) in.readValue(GeoPoint.class.getClassLoader()));
	}

	public LinkedHashMap<Long, GeoPoint> getCamino() {
		return camino;
	}

	public Ruta() {
		super();
		this.camino = new LinkedHashMap<Long, GeoPoint>();
	}

	public void anyadirPuntoARuta(GeoPoint punto, Long instanteActual) {
		this.camino.put(instanteActual, punto);
	}

	public int describeContents() {
		return 0;
	}

	public void writeToParcel(Parcel dest, int flags) {
		dest.writeInt(camino.size());
		Iterator<Entry<Long, GeoPoint>> i = camino.entrySet().iterator();
		while (i.hasNext()) {
			Map.Entry<Long, GeoPoint> e = (Map.Entry<Long, GeoPoint>) i.next();
			dest.writeLong(e.getKey());
			dest.writeValue(e.getValue());

		}

	}
}
